package thread.learn;

/**
 * 一个线程不应该由其他线程来强制中断或停止，而是应该由线程自己自行停止。
 * 所以，Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了。
 * 而 Thread.interrupt 的作用其实也不是中断线程，而是「通知线程应该中断了」，
 * 具体到底中断还是继续运行，应该由被通知的线程自己处理。
 * 要使用中断，首先需要在可能会发生中断的线程中不断监听中断状态，一旦发生
 * 中断，就执行相应的中断处理代码。
 * 当需要中断线程时，调用该线程对象的interrupt 函数即可。
 */
public class ThreadStopDemo {
    public static void main(String[] args) {
        Thread ts = new Thread(() -> {
            //其实并不是真正中断,而是通知,别的线程通知你中断,你也可以不中断写while=true他只一直循环
            while (!Thread.currentThread().isInterrupted()) {
                System.out.println("睡觉中...");
            }
            System.out.println("我醒啦");
        });
        ts.start();
        try {
            Thread.sleep(1000);
// ts.stop();
            System.out.println("别睡了，起来嗨");
            ts.interrupt();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}